package com.kotlin.flong.coroutines1

import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking

/**
 * @Author:liangjl
 * @Date: 2020/7/9-19:20
 * @Eamil:jilongliang@sina.com
 * @Description:
 * 对于父子协程来说，父协程总是会等待其所有子协程的完成，对于父协程来说，它不必显式地去追踪由它所启动的所有子协程，同时也不必
 * 调用子协程的Job.join方法来等待子协程的完成
 */
fun main() = runBlocking<Unit> {

    var request = launch {
        repeat(5) { i ->
            launch {
                delay((i + 1) * 100L)
                println("Coroutines $i 执行完毕")
            }
        }
        println("Hello World")
    }
    request.join()
    println("Welcome")
}
